Typically, computer use involves one or more applications which, when executed by a computing system, configure the system to carry out logical operations defined in code for the application(s). These operations are used to generate, view, and/or edit content data, such as creating documents, images, and other data records that are stored as files. Usually, files and executable applications are maintained separately.
Some content files may contain macros, scripting, or other data defining logic to be carried out by an application that can read the content and decode the macros/scripting. For example, a Microsoft® Word® document can configure Word® (available from Microsoft Corporation of Redmond, Wash.) to carry out scripting operations. As another example, a web browser may display content of an HTML file while carrying out scripting operations defined in the file. Scripts and other embedded logic have been known to introduce security issues.
Some executable files may contain content data. For example, self-extracting archives can comprise a file having code that configures a computing system to decrypt and/or decompress data in the file. The archive may be distributed with a hash or other data comprising a “signature” for the file that can be used to verify the file's authenticity. As another example, the Adobe® AIR® runtime environment, available from Adobe Systems Incorporated of San Jose, Calif., allows use of application files via the runtime environment; these files may include content data. Before a file is used, it must be installed, and installation includes verifying a digital signature of the file.